package main

import (
	"encoding/json"
	"fmt"
	"proto"
)

func handle(bytes []byte)error{
	cmd:=proto.Cmd{}
	fmt.Println(string(bytes))
	err:=json.Unmarshal(bytes,&cmd)
	if err != nil {
		return err
	}
	switch cmd.Cmd {
	case "Msg":
		msg:=proto.Msg{}
		err:=json.Unmarshal(bytes,&msg)
		if err != nil {
			return err
		}
		msgHandle(&msg)
	case "Res":
		msg:=proto.Res{}
		err:=json.Unmarshal(bytes,&msg)
		if err != nil {
			return err
		}
		ResHandle(&msg)
	case "UserListRes":
		msg:=proto.UserListRes{}
		err:=json.Unmarshal(bytes,&msg)
		if err != nil {
			return err
		}
		UserListHandle(&msg)
	default:
		fmt.Println("协议错误")
	}
	return nil
}
func msgHandle(msg *proto.Msg)  {
	fmt.Println("msg ",msg.From,":",msg.Msg)
}
func ResHandle(msg *proto.Res)  {
	fmt.Println("err ",msg.Code,":",msg.Error)
}
func UserListHandle(msg *proto.UserListRes)  {
	if msg.Code !=0 {
		fmt.Println(" UserList err ",msg.Code,":",msg.Error)
	}else{
		fmt.Println("0\t昵称\t性别\t在线")
		for i, list := range msg.List {
			fmt.Println(i+1,"\t",list.NickName,"\t",list.Sex,"\t",list.Online)
		}
	}
}
